本文介绍在云原生背景下,如何通过FinOps实现成本控制和优化,最终实现云上成本有效管控。
什么是FinOps?
FinOps(财务运营)是企业云财务管理文化和实践的结合,即“Finance” + “DevOps”。依据FinOps基金会的定义,FinOps是一种不断发展的云财务管理学科和文化实践,通过帮助工程师、财务、技术和业务团队协作制定数据驱动的支出决策,使企业能够获得最大的业务价值。
在云计算的背景下,FinOps的核心目标是使企业能够实现云资源的成本可预测性、透明度和责任性,从而确保在追求技术敏捷性和创新的同时,也能够控制和优化支出。
关于什么是成本洞察和成本优化,请参见成本套件概述。
FinOps实现流程
要使FinOps实施取得预期的效果,企业需要具备以下条件。
在准备阶段,建内部FinOps体系和团队,完成文化层面的转变,并建立清晰的FinOps战略目标。
在实施阶段,企业需要建立全面的资源和成本监控,选择合适的成本优化策略,并形成长效运作机制,使云上成本可以有效管控。
下文将对实施FinOps前的准备阶段和FinOps实施阶段做详细说明。
实施FinOps前的准备工作
在准备实施FinOps前,需要您制定策略和转变意识,因为这些条件决定了FinOps能否顺利实施并取得预期的效果。主要需关注以下几点:
推广FinOps的价值观:云原生场景下,资源和成本具有较高动态性,需要依赖运维、业务、财务等多个职能团队协同管理,这种情况下,每个成员都需要培养主动考虑成本的意识。
确立共同的FinOps目标:需要从企业的高层到基层的成员之间形成共识,确立共同的FinOps目标,并将这些目标与公司的整体战略紧密对齐。
建立全员参与的责任体系:需要构建全员共担的责任体系,以确保全员在实施过程中能够承担起相应的责任,共同推动FinOps目标的达成。
FinOps实施阶段
步骤一:成本洞察
在实施阶段,成本洞察是实施FinOps的第一步,同时也贯穿在整个FinOps流程。企业需要构建成本监控系统,重点能力包括:业务成本分摊、资源监控、成本预测等。企业的不同角色由于职责不同,在成本洞察时也有各自的视角。
IT主管或财务:从全局视角查看总成本是否在预算范围内,成本趋势是否正常。
IT运维人员:在成本异常时,从资源层面检查是否资源付费策略可以优化,或查看造成成本异常的部门或业务,向下驱动业务团队检查。
业务研发人员:检查对应业务的资源使用情况,分析成本上升原因,评估优化策略。
在云原生架构下,企业一般可以借助云原生FinOps工具解决业务成本分摊的问题。ACK成本套件也提供了成本洞察大盘以及成本数据导出API的能力,您可以直接使用维度丰富的成本洞察大盘,也可以基于成本API构建内部FinOps系统。详细信息,请参见企业成本洞察最佳实践。
步骤二:成本优化
在成本优化阶段,企业首先需要根据资源水位和成本预算评估可优化空间,业务人员(研发人员)再根据资源分配、付费策略以及业务情况等确定优化策略,最后再根据优化策略进行成本优化。
选择业务无感的优化策略
对于企业常见因资源利用率低导致的浪费,您可以从资源分配或付费策略方面进行优化。
优化应用的资源分配:通过资源画像调整资源申请和限制值,优化调度策略。
调整云资源采购策略:调整实例规格组合,优化付费策略,清理闲置资源。
选择业务感知的优化策略
步骤三:成本控制
完成成本洞察和成本优化后,可以通过成本控制来保障整个成本治理的流程处于可控状态下,防止因成本治理周期较长,导致集群和应用的费用超出限额或者增速过快的情况。关于如何控制成本,请参见成本控制。
相关文档
如需可视化地查看成本洞察大盘,或者需要通过HTTP API查看部门和应用分摊集群账单的成本,请参见企业成本洞察最佳实践、通过Allocation API获取。
如有降低容器配置Request和Limit复杂性的需求,可以通过资源画像功能实现容器粒度的资源规格推荐,帮助您调整应用规格配置。详细信息,请参见资源画像。
对于多云和混合云场景,资源可能来自不同云厂商甚至线下环境,您可以通过ACK One实现混合云成本管理,请参见集群成本洞察。